home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
dev
/
lang
/
SmallEiffel.lha
/
SmallEiffel
/
bin_c
/
compile_to_c30.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-12-22
|
60KB
|
2,640 lines
/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79) --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr --
-- http://www.loria.fr/SmallEiffel --
*/
#include "compile_to_c.h"
/*No:COUNTER.append_in*/
/*No:COUNTER.reset*/
void r204increment(T204* C){
C->_value=((C)->_value/*0*/)+(1);
}
/*No:COUNTER.value*/
/*No:ONCE_PROCEDURE.rescue_compound*/
/*No:ONCE_PROCEDURE.use_current_state*/
T0* r305run_require(T0* a1){
T0* R=NULL;
T0* _ct=NULL;
T0* _ar=NULL;
T0* _hc=NULL;
T0* _er=NULL;
T0* _r=NULL;
T2 _i=0;
r358clear((T358*)(oBC93require_collector));
_ct=/*X51current_type*/((T0*)(((T324*)a1))->_current_type/*4*/);
r63collect_for((T63*)(X54base_class(_ct)),1,/*X51name*/((T0*)(((T324*)a1))->_name/*16*/));
/*[IF*/
if(!(r358empty((T358*)(oBC93require_collector)))){
_i=1;
while (!((_i)>(((T358*)(oBC93require_collector))->_upper/*8*/))) {
_er=r358item((T358*)(oBC93require_collector),_i);
_hc=(((T286*)_er))->_header_comment/*4*/;
/*[IF*/
if(!(/*(IRF4.7empty*/((((T286*)_er))->_list/*8*/)==(NULL)/*)*/)){
_r=r305runnable((((T286*)_er))->_list/*8*/,_ct,a1);
/*[IF*/
if((_r)!=((void*)(NULL))){
{T286*n=malloc(sizeof(*n));
*n=M286;
r286make_runnable(n,_r,_ct,a1);
_er=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T286*)(((T286*)_er))))->_header_comment)=(_hc);
/*]*/
/*[IF*/
if((_ar)==((void*)(NULL))){
_ar=se_ma358(1,
_er);
}
else{
r358add_last(((T358*)_ar),_er);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)+(1);
}
/*[IF*/
if((_ar)!=((void*)(NULL))){
{T357*n=malloc(sizeof(*n));
*n=M357;
/*[IRF3.3make*/((((T357*)(n)))->_list)=(_ar);
/*]*/
R=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:ONCE_PROCEDURE.base_class*/
/*No:ONCE_PROCEDURE.set_rescue_compound*/
/*No:ONCE_PROCEDURE.base_class_name*/
T0* r305start_position(T305* C){
T0* R=NULL;
R=X83start_position(/*(IRF4.6first_name*/r85item(((T85*)((C)->_names/*8*/)),1)/*)*/);
return R;
}
T6 r305is_merge_with(T305* C,T0* a1,T0* a2){
T6 R=0;
R=1;
/*[IF*/
if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X93result_type(a1)))){
/*[IF*/
{/*AT*/R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_arguments/*24*/)!=((void*)(X93arguments(a1)))){
/*[IF*/
if((((C)->_arguments/*24*/)==((void*)(NULL)))||((X93arguments(a1))==((void*)(NULL)))){
R=0;
}
else if((/*(IRF4.6count*/(((T191*)(((T187*)((C)->_arguments/*24*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T191*)(((T187*)(X93arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if((R)&&(((C)->_arguments/*24*/)!=((void*)(NULL)))){
R=r187is_a_in((T187*)((C)->_arguments/*24*/),X93arguments(a1),a2);
}
/*FI]*/
/*[IF*/
if(!(R)){
R=1;
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
/*]*/
/*]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if((R)&&(((C)->_arguments/*24*/)!=((void*)(NULL)))){
R=r187is_a_in((T187*)(X93arguments(a1)),(C)->_arguments/*24*/,a2);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
r305merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
T0* r305runnable(T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
T2 _i=0;
/*[IF*/
if(!(r106empty(((T106*)a1)))){
R=r106twin(((T106*)a1));
_i=(((T106*)R))->_upper/*8*/;
while (!((_i)==(0))) {
r22push((T22*)(oBC12small_eiffel),a3);
_a=r103to_runnable((T103*)(r106item(((T106*)R),_i)),a2);
/*[IF*/
if((_a)==((void*)(NULL))){
r305error(r103start_position((T103*)(r106item(((T106*)R),_i))),((T0*)ms13_14266));
}
else{
/*[IRF3.6put*/{T106* C1=((T106*)R);
T0* b1=_a;
T2 b2=_i;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI]*/
r22pop((T22*)(oBC12small_eiffel));
_i=(_i)-(1);
}
}
/*FI]*/
return R;
}
/*No:ONCE_PROCEDURE.not_computed*/
/*No:ONCE_PROCEDURE.first_name*/
/*No:ONCE_PROCEDURE.em1*/
/*No:ONCE_PROCEDURE.header_comment*/
/*No:ONCE_PROCEDURE.names*/
void r305mapping_c_name_in(T305* C,T0* a1){
r63mapping_c_in((T63*)((C)->_base_class/*4*/),a1);
r7append(((T7*)a1),X83to_key(/*(IRF4.6first_name*/r85item(((T85*)((C)->_names/*8*/)),1)/*)*/));
}
/*No:ONCE_PROCEDURE.fz_03*/
/*No:ONCE_PROCEDURE.result_type*/
/*No:ONCE_PROCEDURE.code_require*/
/*No:ONCE_PROCEDURE.make_e_feature*/
void r305add_into(T305* C,T0* a1){
T0* _fn=NULL;
T2 _i=0;
C->_base_class=r70base_class((T70*)(X83start_position(r85item((T85*)((C)->_names/*8*/),1))));
_i=1;
while (!((_i)>(r85count((T85*)((C)->_names/*8*/))))) {
_fn=r85item((T85*)((C)->_names/*8*/),_i);
/*[IF*/
if(r92has(((T92*)a1),X83to_key(_fn))){
_fn=/*X93first_name*/((T0*)/*(IRF4.6first_name*/r85item(((T85*)(((T199*)(r92at(((T92*)a1),X83to_key(_fn))))->_names/*8*/)),1)/*)*/);
r21add_position(X83start_position(_fn));
r21add_position(X83start_position(r85item((T85*)((C)->_names/*8*/),_i)));
r21error((T21*)(oBC12eh),((T0*)ms93_41905));
/*[IRF3.6append*/{T0* b1=X83to_string(_fn);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21error((T21*)(oBC12eh),((T0*)ms13_47));
}
else{
r92put(((T92*)a1),(T0*)C,X83to_key(_fn));
}
/*FI]*/
_i=(_i)+(1);
}
}
T6 r305can_hide(T305* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X93result_type(a1)))){
/*[IF*/
{/*AT*/r21add_position(X93start_position(a1));
r305error(r305start_position(C),((T0*)ms93_64647));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_arguments/*24*/)!=((void*)(X93arguments(a1)))){
/*[IF*/
if((((C)->_arguments/*24*/)==((void*)(NULL)))||((X93arguments(a1))==((void*)(NULL)))){
r21add_position(X93start_position(a1));
r305error(r305start_position(C),((T0*)ms93_83182));
}
else if((/*(IRF4.6count*/(((T191*)(((T187*)((C)->_arguments/*24*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T191*)(((T187*)(X93arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
r21add_position(X93start_position(a1));
r305error(r305start_position(C),((T0*)ms93_67155));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(((C)->_arguments/*24*/)!=((void*)(NULL))){
/*[IF*/
if(!(r187is_a_in((T187*)((C)->_arguments/*24*/),X93arguments(a1),a2))){
r21add_position(X93start_position(a1));
r21add_position(r305start_position(C));
/*[IRF3.6append*/{T0* b1=((T0*)ms93_54285);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)a2))->_current_type/*0*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21error((T21*)(oBC12eh),((T0*)ms13_47));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0);
/*[IF*/
if(R){
r305merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
/*No:ONCE_PROCEDURE.ensure_assertion*/
T0* r305run_ensure(T0* a1){
T0* R=NULL;
T0* _ct=NULL;
T0* _r=NULL;
r106clear((T106*)(oBC93assertion_collector));
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T371*)((T371*)(oBC93header_comment_memory))))->_item)=(_default_item);
}/*]*/
_ct=/*X51current_type*/((T0*)(((T324*)a1))->_current_type/*4*/);
r63collect_for((T63*)(X54base_class(_ct)),2,/*X51name*/((T0*)(((T324*)a1))->_name/*16*/));
_r=r305runnable(oBC93assertion_collector,_ct,a1);
/*[IF*/
if((_r)!=((void*)(NULL))){
{T215*n=malloc(sizeof(*n));
*n=M215;
r215make_runnable(n,_r,_ct,a1);
R=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T215*)(((T215*)R))))->_header_comment)=(((T371*)(oBC93header_comment_memory))->_item/*0*/);
/*]*/
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T371*)((T371*)(oBC93header_comment_memory))))->_item)=(_default_item);
}/*]*/
}
/*FI]*/
return R;
}
void r305check_obsolete(T305* C){
/*[IF*/
if(!(((T22*)(oBC12small_eiffel))->_short_flag/*8*/)){
/*[IF*/
if(((C)->_obsolete_mark/*28*/)!=((void*)(NULL))){
/*[IRF3.6append*/{T0* b1=((T0*)ms214_39396);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T171*)((C)->_obsolete_mark/*28*/))->_to_string/*8*/;
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r305warning(r305start_position(C),((T0*)ms13_166));
}
/*FI]*/
}
/*FI]*/
}
T0* r305try_to_undefine(T305* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
r21add_position(X83start_position(a1));
_fn2=r85feature_name((T85*)((C)->_names/*8*/),X83to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X83undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=r305try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
/*X284set_clients*//*[IRF3.3set_clients*/((((T287*)(((T287*)R))))->_clients)=((C)->_clients/*20*/);
/*]*/
r305merge_header_comments(C,R);
}
else{
r63fatal_undefine(((T63*)a2),a1);
}
/*FI]*/
return R;
}
/*No:ONCE_PROCEDURE.is_deferred*/
/*No:ONCE_PROCEDURE.set_clients*/
/*No:ONCE_PROCEDURE.code_ensure*/
/*No:ONCE_PROCEDURE.nb_errors*/
void r305make_routine(T305* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
/*[IRF3.3make_e_feature*/((((T305*)(C)))->_names)=(a1);
/*]*/
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}
T0* r305to_run_feature(T305* C,T0* a1,T0* a2){
T0* R=NULL;
r305check_obsolete(C);
{T389*n=malloc(sizeof(*n));
*n=M389;
r389make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
void r305merge_header_comments(T305* C,T0* a1){
/*[IF*/
if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
/*[IF*/
if(((C)->_header_comment/*12*/)==((void*)(NULL))){
C->_header_comment=/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/);
}
else if((/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X93set_header_comment(a1,(C)->_header_comment/*12*/);
}
/*FI]*/
}
/*FI]*/
}
/*No:ONCE_PROCEDURE.arguments*/
/*No:ONCE_PROCEDURE.require_assertion*/
void r305warning(T0* a1,T0* a2){
r21add_position(a1);
r21warning((T21*)(oBC12eh),a2);
}
T0* r305try_to_undefine_aux(T305* C,T0* a1,T0* a2){
T0* R=NULL;
{T285*n=malloc(sizeof(*n));
*n=M285;
r285from_effective(n,a1,(C)->_arguments/*24*/,(C)->_require_assertion/*32*/,(C)->_ensure_assertion/*36*/,a2);
R=(T0*)n;
}
return R;
}
/*No:ONCE_PROCEDURE.set_ensure_assertion*/
/*No:ONCE_PROCEDURE.fz_bad_assertion*/
/*No:ONCE_PROCEDURE.fz_dot*/
T6 r305stupid_switch(T305* C,T0* a1,T0* a2){
T6 R=0;
R=((C)->_routine_body/*44*/)==((void*)(NULL));
return R;
}
void r305error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r305make(T305* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
r305make_routine(C,a1,a2,a3,a4,a5);
C->_local_vars=a6;
C->_routine_body=a7;
C->_use_current_state=25;
}
/*No:ONCE_PROCEDURE.routine_body*/
/*No:ONCE_PROCEDURE.end_comment*/
void r305collect_for(T305* C,T2 a1){
T0* _er=NULL;
/*[IF*/
if((a1)==(1)){
_er=(C)->_require_assertion/*32*/;
/*[IF*/
if((_er)!=((void*)(NULL))){
/*[IF*/
if(!(r358fast_has((T358*)(oBC93require_collector),_er))){
r358add_last((T358*)(oBC93require_collector),_er);
}
/*FI]*/
}
/*FI]*/
}
else{
/*[IF*/
if(((C)->_ensure_assertion/*36*/)!=((void*)(NULL))){
/*[IRF3.3set_item*/((((T371*)((T371*)(oBC93header_comment_memory))))->_item)=(((T215*)((C)->_ensure_assertion/*36*/))->_header_comment/*4*/);
/*]*/
r215add_into((T215*)((C)->_ensure_assertion/*36*/),oBC93assertion_collector);
}
/*FI]*/
}
/*FI]*/
}
/*No:ONCE_PROCEDURE.local_vars*/
void r305set_header_comment(T305* C,T0* a1){
/*[IF*/
if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)>(1))){
C->_end_comment=a1;
}
/*FI]*/
}
/*No:ONCE_PROCEDURE.clients*/
/*No:ONCE_PROCEDURE.obsolete_mark*/
void r21print_as_warning(T21* C){
/*[IF*/
if((C)->_no_warning/*8*/){
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
/*]*/
/*]*/
}
else{
r21do_print(((T0*)ms21_8743));
r21incr_nb_warnings(C);
}
/*FI]*/
}
/*No:ERROR_HANDLER.nb_errors*/
T0*oBC21explanation=NULL;
/*No:ERROR_HANDLER.cancel*/
/*No:ERROR_HANDLER.nb_warnings*/
void r21print_as_error(T21* C){
r21do_print(((T0*)ms21_2685));
r21incr_nb_errors(C);
}
void r21print_as_fatal_error(T21* C){
r21do_print(((T0*)ms21_19327));
exit(1);
}
void r21incr_nb_errors(T21* C){
C->_nb_errors=((C)->_nb_errors/*4*/)+(1);
/*[IF*/
if(((C)->_nb_errors/*4*/)>=(6)){
r35put_string((T35*)(oBC1std_error),((T0*)ms13_3143));
r35put_string((T35*)(oBC1std_error),((T0*)ms21_10744));
exit(1);
}
/*FI]*/
}
/*No:ERROR_HANDLER.no_warning*/
void r21incr_nb_warnings(T21* C){
C->_nb_warnings=((C)->_nb_warnings/*0*/)+(1);
}
void r21warning(T21* C,T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21print_as_warning(C);
}
void r21error(T21* C,T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21print_as_error(C);
}
/*No:ERROR_HANDLER.make*/
/*No:ERROR_HANDLER.extend*/
/*No:ERROR_HANDLER.append*/
/*No:ERROR_HANDLER.set_no_warning*/
/*No:ERROR_HANDLER.exit_failure_code*/
T0*oBC21positions=NULL;
/*No:ERROR_HANDLER.fz_error_stars*/
void r21add_position(T0* a1){
/*[IF*/
if((a1)!=((void*)(NULL))){
/*[IF*/
if(!(r69has((T69*)(oBC21positions),a1))){
r69add_last((T69*)(oBC21positions),a1);
}
/*FI]*/
}
/*FI]*/
}
T6 r21empty(void){
T6 R=0;
R=(/*(IRF4.7empty*/(((T7*)(oBC21explanation))->_count/*4*/)==(0)/*)*/)&&(r69empty((T69*)(oBC21positions)));
return R;
}
void r21add_type(T0* a1,T0* a2){
/*[IRF3.6append*/{T0* b1=((T0*)ms21_2325);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IF*/
if(X54is_run_type(a1)){
/*[IRF3.6append*/{T0* b1=X54run_time_mark(a1);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
}
else{
/*[IRF3.6append*/{T0* b1=X54written_mark(a1);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
}
/*FI]*/
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21add_position(X54start_position(a1));
}
void r21do_print(T0* a1){
T3 _previous_cc=0;
T3 _cc=0;
T2 _cpt=0;
T2 _i=0;
r35put_string((T35*)(oBC1std_error),((T0*)ms13_3143));
r35put_string((T35*)(oBC1std_error),a1);
r35put_string((T35*)(oBC1std_error),((T0*)ms21_384));
_i=1;
_cpt=(9)+((((T7*)a1))->_count/*4*/);
while (!((_i)>(((T7*)(oBC21explanation))->_count/*4*/))) {
_previous_cc=_cc;
_cc=/*(IRF4.6item*/(((T7*)(oBC21explanation))->_storage/*0*/)[(_i)-(1)]/*)*/;
_i=(_i)+(1);
/*[IF*/
if((_cpt)>(60)){
/*[IF*/
if((_cc)==('\40')){
/*[IRF3.6put_character*/{T35* C1=(T35*)(oBC1std_error);
T3 b1='\n';
putc(b1,((FILE*)(stderr)));
}/*]*/
_cpt=0;
}
else if((_previous_cc)==('\54')){
/*[IRF3.6put_character*/{T35* C1=(T35*)(oBC1std_error);
T3 b1='\n';
putc(b1,((FILE*)(stderr)));
}/*]*/
/*[IRF3.6put_character*/{T35* C1=(T35*)(oBC1std_error);
T3 b1=_cc;
putc(b1,((FILE*)(stderr)));
}/*]*/
_cpt=1;
}
else{
/*[IRF3.6put_character*/{T35* C1=(T35*)(oBC1std_error);
T3 b1=_cc;
putc(b1,((FILE*)(stderr)));
}/*]*/
_cpt=(_cpt)+(1);
}
/*FI]*/
}
else{
/*[IRF3.6put_character*/{T35* C1=(T35*)(oBC1std_error);
T3 b1=_cc;
putc(b1,((FILE*)(stderr)));
}/*]*/
{int z1=_cc;
if((10==z1)){
_cpt=0;
}
else{_cpt=(_cpt)+(1);
}}
}
/*FI]*/
}
/*[IRF3.6put_character*/{T35* C1=(T35*)(oBC1std_error);
T3 b1='\n';
putc(b1,((FILE*)(stderr)));
}/*]*/
_i=0;
while (!((_i)>(((T69*)(oBC21positions))->_upper/*8*/))) {
r70show((T70*)(/*(IRF4.6item*/(((T69*)(oBC21positions))->_storage/*0*/)[_i]/*)*/));
_i=(_i)+(1);
}
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
/*]*/
/*]*/
r35put_string((T35*)(oBC1std_error),((T0*)ms21_2170));
}
void r21fatal_error(T21* C,T0* a1){
r7append((T7*)(oBC21explanation),a1);
r21print_as_fatal_error(C);
}
/*No:PARENT.undefine_list*/
T6 r79has(T79* C,T0* a1){
T6 R=0;
T0* _fn2=NULL;
/*[IF*/
if(((C)->_rename_list/*12*/)==((void*)(NULL))){
R=r63has((T63*)(X54base_class((C)->_type/*4*/)),a1);
}
else{
_fn2=r87to_old_name((T87*)((C)->_rename_list/*12*/),a1);
/*[IF*/
if((_fn2)==((void*)(a1))){
_fn2=r87to_new_name((T87*)((C)->_rename_list/*12*/),a1);
/*[IF*/
if((_fn2)==((void*)(a1))){
R=r63has((T63*)(X54base_class((C)->_type/*4*/)),a1);
}
else{
R=r63has((T63*)(X54base_class((C)->_type/*4*/)),_fn2);
}
/*FI]*/
}
else{
R=r63has((T63*)(X54base_class((C)->_type/*4*/)),_fn2);
}
/*FI]*/
}
/*FI]*/
return R;
}
T0*oBC79forbidden_parent_list=NULL;
void r79select_conflict(T0* a1,T0* a2){
r21add_position(X83start_position(a1));
r21add_position(X83start_position(a2));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_74095);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
T0* r79start_position(T79* C){
T0* R=NULL;
R=X54start_position((C)->_type/*4*/);
return R;
}
/*No:PARENT.undefine_memory2*/
/*No:PARENT.set_comment*/
T0* r79precursor_for(T79* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _original_fn=NULL;
_original_fn=/*X93first_name*/((T0*)/*(IRF4.6first_name*/r85item(((T85*)(((T199*)(X51base_feature(a2)))->_names/*8*/)),1)/*)*/);
/*[IF*/
if(r79has_redefine(C,_original_fn)){
/*[IF*/
if((/*X176parent*/((T0*)(((T177*)a1))->_parent/*8*/))==((void*)(NULL))){
R=r79look_up_for(C,X51run_class(a2),_original_fn);
}
else if((((T64*)(/*X176parent*/((T0*)(((T177*)a1))->_parent/*8*/)))->_to_string/*0*/)==((void*)(((T64*)(X54base_class_name((C)->_type/*4*/)))->_to_string/*0*/))){
R=r79look_up_for(C,X51run_class(a2),_original_fn);
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r79going_up(T79* C,T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _bc=NULL;
_bc=X54base_class((C)->_type/*4*/);
/*[IF*/
if((_bc)==((void*)(a2))){
R=r79going_down(C,a1,a3);
}
else if(r63is_general(((T63*)_bc))){
R=r79going_down(C,a1,a3);
}
else if(r63is_subclass_of(((T63*)_bc),a2)){
r340add_last(((T340*)a1),(T0*)C);
R=r63going_up(((T63*)_bc),a1,a2,a3);
}
/*FI]*/
return R;
}
/*No:PARENT.em1*/
T0* r79look_up_for(T79* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _f=NULL;
T0* _fn2=NULL;
/*[IF*/
if((((C)->_rename_list/*12*/)==((void*)(NULL)))||(!(r87affect((T87*)((C)->_rename_list/*12*/),a2)))){
_f=X54look_up_for((C)->_type/*4*/,a1,a2);
R=r79apply_undefine(C,_f,a2);
}
else{
_fn2=r87to_old_name((T87*)((C)->_rename_list/*12*/),a2);
/*[IF*/
if((_fn2)!=((void*)(a2))){
_f=X54look_up_for((C)->_type/*4*/,a1,_fn2);
R=r79apply_undefine(C,_f,_fn2);
}
else{
_f=X54look_up_for((C)->_type/*4*/,a1,a2);
/*[IF*/
if((_f)==((void*)(NULL))){
r21add_position(X83start_position(a2));
/*[IRF3.6append*/{T0* b1=((T0*)ms13_7398);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X83to_string(a2);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_61083);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:PARENT.redefine_list*/
void r79get_started(T79* C,T0* a1){
T6 _all_check=0;
T0* _new_fn=NULL;
T0* _old_fn=NULL;
T0* _fn=NULL;
T0* _pbc=NULL;
T0* _wbc=NULL;
T2 _i=0;
_all_check=r43all_check((T43*)(oBC12run_control));
C->_parent_list=a1;
_pbc=X54base_class((C)->_type/*4*/);
_wbc=((T78*)((C)->_parent_list/*0*/))->_base_class/*0*/;
/*[IF*/
if(_all_check){
/*[IF*/
if(((((T63*)_pbc))->_formal_generic_list/*28*/)!=((void*)(NULL))){
/*[IF*/
if((X54generic_list((C)->_type/*4*/))==((void*)(NULL))){
}
/*FI]*/
}
else if(X54is_generic((C)->_type/*4*/)){
r21add_position(((T64*)((((T63*)_pbc))->_name/*24*/))->_start_position/*4*/);
r21add_position(X54start_position((C)->_type/*4*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_72275);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((_all_check)&&(((C)->_rename_list/*12*/)!=((void*)(NULL)))){
r87get_started((T87*)((C)->_rename_list/*12*/),_pbc);
}
/*FI]*/
/*[IF*/
if((_all_check)&&(((C)->_undefine_list/*20*/)!=((void*)(NULL)))){
_i=r85count((T85*)((C)->_undefine_list/*20*/));
while (!((_i)==(0))) {
_fn=r85item((T85*)((C)->_undefine_list/*20*/),_i);
_old_fn=r79get_old_name(C,_fn);
/*[IF*/
if(((_old_fn)==((void*)(NULL)))&&(!(r63has(((T63*)_pbc),_fn)))){
r21add_position(X83start_position(_fn));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_111496a);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
/*[IF*/
if(((C)->_redefine_list/*24*/)!=((void*)(NULL))){
_i=r85count((T85*)((C)->_redefine_list/*24*/));
while (!((_i)==(0))) {
_fn=r85item((T85*)((C)->_redefine_list/*24*/),_i);
/*[IF*/
if(!(r63proper_has(((T63*)_wbc),_fn))){
r21add_position(X83start_position(_fn));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_35857);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
/*[IF*/
if(_all_check){
_old_fn=r79get_old_name(C,_fn);
/*[IF*/
if(((_old_fn)==((void*)(NULL)))&&(!(r63has(((T63*)_pbc),_fn)))){
r21add_position(X83start_position(_fn));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_111496);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
/*[IF*/
if((_all_check)&&(((C)->_select_list/*28*/)!=((void*)(NULL)))){
_i=r85count((T85*)((C)->_select_list/*28*/));
while (!((_i)==(0))) {
_fn=r85item((T85*)((C)->_select_list/*28*/),_i);
_old_fn=r79get_old_name(C,_fn);
/*[IF*/
if(((_old_fn)==((void*)(NULL)))&&(!(r63has(((T63*)_pbc),_fn)))){
r21add_position(X83start_position(_fn));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_94000);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
_new_fn=r79get_new_name(C,_fn);
/*[IF*/
if((_new_fn)!=((void*)(NULL))){
/*[IF*/
if((r79get_old_name(C,_new_fn))==((void*)(NULL))){
r21add_position(X83start_position(_new_fn));
r21add_position(X83start_position(_fn));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_94000);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
}
T0* r79apply_undefine(T79* C,T0* a1,T0* a2){
T0* R=NULL;
T2 _index=0;
T0* _fnkey=NULL;
T0* _ufn=NULL;
_ufn=r79has_undefine(C,a2);
/*[IF*/
if((_ufn)!=((void*)(NULL))){
/*[IF*/
if(((C)->_undefine_memory1/*32*/)==((void*)(NULL))){
{T62*n=malloc(sizeof(*n));
*n=M62;
r62with_capacity(n,r85count((T85*)((C)->_undefine_list/*20*/)));
C->_undefine_memory1=(T0*)n;
}
{T99*n=malloc(sizeof(*n));
*n=M99;
r99with_capacity(n,r85count((T85*)((C)->_undefine_list/*20*/)));
C->_undefine_memory2=(T0*)n;
}
}
/*FI]*/
_fnkey=X83to_key(_ufn);
_index=r62fast_index_of((T62*)((C)->_undefine_memory1/*32*/),_fnkey);
/*[IF*/
if((_index)>(((T62*)((C)->_undefine_memory1/*32*/))->_upper/*8*/)){
r62add_last((T62*)((C)->_undefine_memory1/*32*/),_fnkey);
R=X93try_to_undefine(a1,_ufn,((T78*)((C)->_parent_list/*0*/))->_base_class/*0*/);
X99add_last((C)->_undefine_memory2/*36*/,R);
}
else{
R=/*X99item*/((T0*)r99item((T99*)((C)->_undefine_memory2/*36*/),_index));
}
/*FI]*/
}
else{
R=a1;
}
/*FI]*/
return R;
}
/*No:PARENT.us_none*/
/*No:PARENT.us_integer*/
/*No:PARENT.rename_list*/
/*No:PARENT.set_select*/
/*No:PARENT.fz_09*/
/*No:PARENT.comment*/
T0* r79smallest_ancestor(T79* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(X54is_generic((C)->_type/*4*/)){
R=X54to_runnable((C)->_type/*4*/,a1);
}
else{
R=(C)->_type/*4*/;
}
/*FI]*/
return R;
}
/*No:PARENT.fatal_error*/
T6 r79has_redefine(T79* C,T0* a1){
T6 R=0;
/*[IF*/
if(((C)->_redefine_list/*24*/)!=((void*)(NULL))){
R=r85has((T85*)((C)->_redefine_list/*24*/),a1);
}
/*FI]*/
return R;
}
/*No:PARENT.set_redefine*/
T0* r79get_new_name(T79* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((C)->_rename_list/*12*/)!=((void*)(NULL))){
R=r87to_new_name((T87*)((C)->_rename_list/*12*/),a1);
/*[IF*/
if((R)==((void*)(a1))){
R=NULL;
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r79up_to_original(T79* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _bc=NULL;
T0* _old_name=NULL;
_bc=X54base_class((C)->_type/*4*/);
/*[IF*/
if(((C)->_rename_list/*12*/)==((void*)(NULL))){
R=r63up_to_original(((T63*)_bc),a1,a2);
}
else if(r87affect((T87*)((C)->_rename_list/*12*/),a2)){
_old_name=r87to_old_name((T87*)((C)->_rename_list/*12*/),a2);
/*[IF*/
if((_old_name)!=((void*)(a2))){
R=r63up_to_original(((T63*)_bc),a1,_old_name);
}
/*FI]*/
}
else{
R=r63up_to_original(((T63*)_bc),a1,a2);
}
/*FI]*/
return R;
}
/*No:PARENT.us_double*/
void r79missing_select(T0* a1,T0* a2){
r21add_position(X83start_position(a1));
r21add_position(X83start_position(a2));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_99138);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*No:PARENT.parent_list*/
/*No:PARENT.us_character*/
T0* r79get_old_name(T79* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((C)->_rename_list/*12*/)!=((void*)(NULL))){
R=r87to_old_name((T87*)((C)->_rename_list/*12*/),a1);
/*[IF*/
if((R)==((void*)(a1))){
R=NULL;
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:PARENT.type*/
T0* r79clients_for(T79* C,T0* a1){
T0* R=NULL;
T0* _old_fn=NULL;
/*[IF*/
if(((C)->_rename_list/*12*/)==((void*)(NULL))){
/*[IF*/
if(((C)->_export_list/*16*/)==((void*)(NULL))){
R=r63clients_for((T63*)(X54base_class((C)->_type/*4*/)),a1);
}
else{
R=r317clients_for((T317*)((C)->_export_list/*16*/),a1);
/*[IF*/
if((R)==((void*)(NULL))){
R=r63clients_for((T63*)(X54base_class((C)->_type/*4*/)),a1);
}
/*FI]*/
}
/*FI]*/
}
else{
_old_fn=r87to_old_name((T87*)((C)->_rename_list/*12*/),a1);
/*[IF*/
if(((C)->_export_list/*16*/)==((void*)(NULL))){
R=r63clients_for((T63*)(X54base_class((C)->_type/*4*/)),_old_fn);
}
else{
R=r317clients_for((T317*)((C)->_export_list/*16*/),_old_fn);
/*[IF*/
if((R)==((void*)(NULL))){
R=r63clients_for((T63*)(X54base_class((C)->_type/*4*/)),_old_fn);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r79has_undefine(T79* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((C)->_undefine_list/*20*/)!=((void*)(NULL))){
R=r85feature_name((T85*)((C)->_undefine_list/*20*/),X83to_key(a1));
}
/*FI]*/
return R;
}
/*No:PARENT.us_native_array*/
/*No:PARENT.set_undefine*/
/*No:PARENT.set_export*/
T0* r79do_rename(T79* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((C)->_rename_list/*12*/)==((void*)(NULL))){
R=a1;
}
else{
R=r87to_new_name((T87*)((C)->_rename_list/*12*/),a1);
}
/*FI]*/
return R;
}
void r79add_rename(T79* C,T0* a1){
/*[IF*/
if(((C)->_rename_list/*12*/)==((void*)(NULL))){
{T87*n=malloc(sizeof(*n));
*n=M87;
/*[IRF3.3make*/((((T87*)(n)))->_list)=(se_ma89(1,
a1));
/*]*/
C->_rename_list=(T0*)n;
}
}
else{
/*[IRF3.5add_last*/r89add_last(((T89*)(((T87*)((C)->_rename_list/*12*/))->_list/*0*/)),a1);
/*]*/
}
/*FI]*/
}
/*No:PARENT.undefine_memory1*/
T0* r79going_down(T79* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _previous=NULL;
/*[IF*/
if(((C)->_rename_list/*12*/)==((void*)(NULL))){
R=a2;
}
else{
R=r87to_new_name((T87*)((C)->_rename_list/*12*/),a2);
}
/*FI]*/
/*[IF*/
if(!(r340empty(((T340*)a1)))){
_previous=r340last(((T340*)a1));
r340remove_last(((T340*)a1));
R=r79going_down(((T79*)_previous),a1,R);
}
/*FI]*/
return R;
}
/*No:PARENT.us_bit*/
void r79multiple_check(T79* C,T0* a1){
T0* _fn2=NULL;
T0* _fn1=NULL;
T2 _i=0;
T0* _bc2=NULL;
T0* _bc1=NULL;
_bc1=X54base_class((C)->_type/*4*/);
_bc2=X54base_class((((T79*)a1))->_type/*4*/);
/*[IF*/
if((((_bc1)==((void*)(_bc2)))||(r63is_subclass_of(((T63*)_bc1),_bc2)))||(r63is_subclass_of(((T63*)_bc2),_bc1))){
/*[IF*/
if(((C)->_redefine_list/*24*/)!=((void*)(NULL))){
_i=r85count((T85*)((C)->_redefine_list/*24*/));
while (!((_i)==(0))) {
_fn1=r85item((T85*)((C)->_redefine_list/*24*/),_i);
/*[IF*/
if(((((T79*)a1))->_rename_list/*12*/)==((void*)(NULL))){
}
else if(r87affect((T87*)((((T79*)a1))->_rename_list/*12*/),_fn1)){
_fn2=r87to_new_name((T87*)((((T79*)a1))->_rename_list/*12*/),_fn1);
/*[IF*/
if((_fn2)!=((void*)(_fn1))){
/*[IF*/
if(((C)->_select_list/*28*/)!=((void*)(NULL))){
/*[IF*/
if(r85has((T85*)((C)->_select_list/*28*/),_fn1)){
/*[IF*/
if(((((T79*)a1))->_select_list/*28*/)!=((void*)(NULL))){
/*[IF*/
if(r85has((T85*)((((T79*)a1))->_select_list/*28*/),_fn2)){
r79select_conflict(_fn1,_fn2);
}
/*FI]*/
}
/*FI]*/
}
else if(((((T79*)a1))->_select_list/*28*/)==((void*)(NULL))){
r79missing_select(_fn1,_fn2);
}
else if(!(r85has((T85*)((((T79*)a1))->_select_list/*28*/),_fn2))){
r79missing_select(_fn1,_fn2);
}
/*FI]*/
}
else if(((((T79*)a1))->_select_list/*28*/)==((void*)(NULL))){
r79missing_select(_fn1,_fn2);
}
else if(!(r85has((T85*)((((T79*)a1))->_select_list/*28*/),_fn2))){
r79missing_select(_fn1,_fn2);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
}
/*FI]*/
}
/*No:PARENT.us_pointer*/
T6 r79has_select_for(T79* C,T0* a1){
T6 R=0;
/*[IF*/
if(((C)->_select_list/*28*/)!=((void*)(NULL))){
R=r85has((T85*)((C)->_select_list/*28*/),a1);
}
/*FI]*/
return R;
}
void r79make(T79* C,T0* a1){
C->_type=a1;
/*[IF*/
if(r39fast_has((T39*)(oBC79forbidden_parent_list),X54written_mark((C)->_type/*4*/))){
r21add_position(X54start_position((C)->_type/*4*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms79_22860);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X54written_mark((C)->_type/*4*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_34704);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}
/*No:PARENT.us_real*/
void r79collect_for(T79* C,T2 a1,T0* a2){
T0* _fn2=NULL;
/*[IF*/
if((((C)->_rename_list/*12*/)==((void*)(NULL)))||(!(r87affect((T87*)((C)->_rename_list/*12*/),a2)))){
r63collect_for((T63*)(X54base_class((C)->_type/*4*/)),a1,a2);
}
else{
_fn2=r87to_old_name((T87*)((C)->_rename_list/*12*/),a2);
/*[IF*/
if((_fn2)!=((void*)(a2))){
r63collect_for((T63*)(X54base_class((C)->_type/*4*/)),a1,_fn2);
}
/*FI]*/
}
/*FI]*/
}
T6 r79is_a_vncg(T79* C,T0* a1,T0* a2){
T6 R=0;
T0* _t2_bcn=NULL;
T0* _type_bcn=NULL;
T0* _t2_bc=NULL;
T0* _type_bc=NULL;
T0* _rt=NULL;
T0* _tfg=NULL;
T0* _gl2=NULL;
T0* _gl1=NULL;
T0* _gl=NULL;
T2 _i=0;
T2 _rank=0;
_type_bc=X54base_class((C)->_type/*4*/);
_type_bcn=((T64*)((((T63*)_type_bc))->_name/*24*/))->_to_string/*0*/;
_t2_bc=X54base_class(a2);
_t2_bcn=((T64*)((((T63*)_t2_bc))->_name/*24*/))->_to_string/*0*/;
/*[IF*/
if((_type_bcn)==((void*)(_t2_bcn))){
_gl=X54generic_list((C)->_type/*4*/);
_gl2=X54generic_list(a2);
/*[IF*/
if(((_gl)==((void*)(NULL)))||((r261count(((T261*)_gl)))!=(r261count(((T261*)_gl2))))){
r21add_position(X54start_position((C)->_type/*4*/));
r21add_position(X54start_position(a2));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_60544);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
/*[IF*/
if(X54is_generic(a1)){
_gl1=X54generic_list(a1);
R=1;
_i=r261count(((T261*)_gl2));
while (!((!(R))||((_i)==(0)))) {
/*[IF*/
if(X54is_formal_generic(r261item(((T261*)_gl),_i))){
_tfg=r261item(((T261*)_gl),_i);
if(NULL!=(_tfg))switch(((T0*)_tfg)->id) {
case 280:
break;
default:
_tfg=NULL;
};_rank=(((T280*)_tfg))->_rank/*8*/;
R=X54is_a(r261item(((T261*)_gl1),_rank),r261item(((T261*)_gl2),_i));
}
else{
_rt=X54run_type(X54to_runnable(r261item(((T261*)_gl),_i),a1));
R=X54is_a(_rt,r261item(((T261*)_gl2),_i));
}
/*FI]*/
_i=(_i)-(1);
}
}
else{
R=X54is_a((C)->_type/*4*/,a2);
}
/*FI]*/
/*[IF*/
if(!(R)){
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
/*]*/
/*]*/
}
/*FI]*/
}
else if(r63is_subclass_of(((T63*)_type_bc),_t2_bc)){
/*[IF*/
if(X54is_generic(a1)){
_rt=X54run_type(X54to_runnable((C)->_type/*4*/,a1));
R=r63is_a_vncg(((T63*)_type_bc),_rt,a2);
}
else{
R=r63is_a_vncg(((T63*)_type_bc),(C)->_type/*4*/,a2);
}
/*FI]*/
/*[IF*/
if(!(R)){
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:PARENT.export_list*/
/*No:PARENT.select_list*/
/*No:PARENT.us_boolean*/
/*No:E_LOOP.nb_errors*/
/*No:E_LOOP.initialize*/
/*No:E_LOOP.start_position*/
T0* r244add_comment(T244* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else {/*AT*//*[IF*/
if((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(1)){
R=(T0*)C;
}
else{
{T225*n=malloc(sizeof(*n));
*n=M225;
r225make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:E_LOOP.fz_is_not_boolean*/
T6 r244use_current(T244* C){
T6 R=0;
T6 _loop_check=0;
_loop_check=r43loop_check((T43*)(oBC12run_control));
/*[IF*/
if((_loop_check)&&(((C)->_variant_clause/*16*/)!=((void*)(NULL)))){
R=(R)||(X242use_current((C)->_variant_clause/*16*/));
}
/*FI]*/
/*[IF*/
if(((C)->_initialize/*8*/)!=((void*)(NULL))){
R=(R)||(r216use_current((T216*)((C)->_initialize/*8*/)));
}
/*FI]*/
R=(R)||(X56use_current((C)->_until_expression/*20*/));
/*[IF*/
if((_loop_check)&&(((C)->_invariant_clause/*12*/)!=((void*)(NULL)))){
R=(R)||(r243use_current((T243*)((C)->_invariant_clause/*12*/)));
}
/*FI]*/
/*[IF*/
if(((C)->_loop_body/*24*/)!=((void*)(NULL))){
R=(R)||(r216use_current((T216*)((C)->_loop_body/*24*/)));
}
/*FI]*/
return R;
}
void r244compile_to_c(T244* C){
T6 _invariant_flag=0;
T6 _variant_flag=0;
T6 _loop_check=0;
_loop_check=r43loop_check((T43*)(oBC12run_control));
/*[IF*/
if((_loop_check)&&(((C)->_variant_clause/*16*/)!=((void*)(NULL)))){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms244_12258));
/*]*/
_variant_flag=1;
}
/*FI]*/
/*[IF*/
if(((C)->_initialize/*8*/)!=((void*)(NULL))){
r216compile_to_c((T216*)((C)->_initialize/*8*/));
}
/*FI]*/
/*[IF*/
if((_loop_check)&&(((C)->_invariant_clause/*12*/)!=((void*)(NULL)))){
r243compile_to_c((T243*)((C)->_invariant_clause/*12*/));
_invariant_flag=1;
}
/*FI]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms244_8208));
/*]*/
/*[IF*/
if(r43no_check((T43*)(oBC12run_control))){
r25trace_boolean_expression((T25*)(oBC12cpp),(C)->_until_expression/*20*/);
}
else{
X56compile_to_c((C)->_until_expression/*20*/);
}
/*FI]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms244_1310));
/*]*/
/*[IF*/
if(_variant_flag){
r25variant_check((T25*)(oBC12cpp),/*X242expression*/((T0*)((T246*)((C)->_variant_clause/*16*/))->_expression/*8*/));
}
/*FI]*/
/*[IF*/
if(((C)->_loop_body/*24*/)!=((void*)(NULL))){
r216compile_to_c((T216*)((C)->_loop_body/*24*/));
}
/*FI]*/
/*[IF*/
if(_invariant_flag){
r243compile_to_c((T243*)((C)->_invariant_clause/*12*/));
}
/*FI]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_276));
/*]*/
/*[IF*/
if(_variant_flag){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_276));
/*]*/
}
/*FI]*/
}
T0* r244to_runnable(T244* C,T0* a1){
T0* R=NULL;
T6 _loop_check=0;
T0* _ue=NULL;
_loop_check=r43loop_check((T43*)(oBC12run_control));
/*[IF*/
if(((C)->_current_type/*28*/)==((void*)(NULL))){
C->_current_type=a1;
/*[IF*/
if(((C)->_initialize/*8*/)!=((void*)(NULL))){
C->_initialize=r216to_runnable((T216*)((C)->_initialize/*8*/),a1);
/*[IF*/
if(((C)->_initialize/*8*/)==((void*)(NULL))){
r244error((C)->_start_position/*4*/,((T0*)ms244_36456));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((_loop_check)&&(((C)->_invariant_clause/*12*/)!=((void*)(NULL)))){
C->_invariant_clause=r243to_runnable((T243*)((C)->_invariant_clause/*12*/),a1);
/*[IF*/
if(((C)->_invariant_clause/*12*/)==((void*)(NULL))){
r244error((C)->_start_position/*4*/,((T0*)ms244_14826));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((_loop_check)&&(((C)->_variant_clause/*16*/)!=((void*)(NULL)))){
C->_variant_clause=X242to_runnable((C)->_variant_clause/*16*/,a1);
/*[IF*/
if(((C)->_variant_clause/*16*/)==((void*)(NULL))){
r244error((C)->_start_position/*4*/,((T0*)ms244_42224));
}
/*FI]*/
}
/*FI]*/
_ue=X56to_runnable((C)->_until_expression/*20*/,a1);
/*[IF*/
if((_ue)!=((void*)(NULL))){
/*[IF*/
if(!(X54is_boolean(X56result_type(_ue)))){
r244error(X56start_position(_ue),((T0*)ms244_78732));
r21add_type(X56result_type(_ue),((T0*)ms13_18320));
r21print_as_error((T21*)(oBC12eh));
}
/*FI]*/
C->_until_expression=_ue;
}
else{
r244error((C)->_start_position/*4*/,((T0*)ms244_75996));
}
/*FI]*/
/*[IF*/
if(((C)->_loop_body/*24*/)!=((void*)(NULL))){
C->_loop_body=r216to_runnable((T216*)((C)->_loop_body/*24*/),a1);
/*[IF*/
if(((C)->_loop_body/*24*/)==((void*)(NULL))){
r244error((C)->_start_position/*4*/,((T0*)ms244_24282));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
R=(T0*)C;
}
/*FI]*/
}
else{
{T244*n=malloc(sizeof(*n));
*n=M244;
r244make(n,(C)->_start_position/*4*/,(C)->_initialize/*8*/,(C)->_invariant_clause/*12*/,(C)->_variant_clause/*16*/,(C)->_until_expression/*20*/,(C)->_loop_body/*24*/);
R=(T0*)n;
}
R=r244to_runnable(((T244*)R),a1);
}
/*FI]*/
return R;
}
/*No:E_LOOP.current_type*/
/*No:E_LOOP.invariant_clause*/
/*No:E_LOOP.until_expression*/
/*No:E_LOOP.is_pre_computable*/
/*No:E_LOOP.fz_12*/
/*No:E_LOOP.collect_c_tmp*/
void r244error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
/*No:E_LOOP.end_mark_comment*/
void r244make(T244* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){
C->_start_position=a1;
C->_initialize=a2;
C->_invariant_clause=a3;
C->_variant_clause=a4;
C->_until_expression=a5;
C->_loop_body=a6;
}
/*No:E_LOOP.variant_clause*/
/*No:E_LOOP.loop_body*/
void r244afd_check(T244* C){
/*[IF*/
if(r43loop_check((T43*)(oBC12run_control))){
/*[IF*/
if(((C)->_variant_clause/*16*/)!=((void*)(NULL))){
X242afd_check((C)->_variant_clause/*16*/);
}
/*FI]*/
/*[IF*/
if(((C)->_invariant_clause/*12*/)!=((void*)(NULL))){
r243afd_check((T243*)((C)->_invariant_clause/*12*/));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_initialize/*8*/)!=((void*)(NULL))){
r216afd_check((T216*)((C)->_initialize/*8*/));
}
/*FI]*/
X56afd_check((C)->_until_expression/*20*/);
/*[IF*/
if(((C)->_loop_body/*24*/)!=((void*)(NULL))){
r216afd_check((T216*)((C)->_loop_body/*24*/));
}
/*FI]*/
}
T2 r139static_value(T139* C){
T2 R=0;
T0* _rf=NULL;
T0* _running=NULL;
_running=((T24*)(X51run_class((C)->_run_feature/*8*/)))->_running/*12*/;
/*[IF*/
if(((_running)!=((void*)(NULL)))&&((r328count(((T328*)_running)))==(1))){
_rf=r24dynamic((T24*)(r328first(((T328*)_running))),(C)->_run_feature/*8*/);
/*[IF*/
if(X51is_static(_rf)){
R=X51static_value_mem(_rf);
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_PREFIX_FREEOP.call_proc_call_c2c*/
/*No:CALL_PREFIX_FREEOP.feature_name*/
void r139finalize(T139* C){
T0* _rf=NULL;
T0* _rc=NULL;
_rf=(C)->_run_feature/*8*/;
_rc=X54run_class(/*X51current_type*/((T0*)(((T324*)_rf))->_current_type/*4*/));
C->_run_feature=r24dynamic((T24*)(r328first((T328*)((((T24*)_rc))->_running/*12*/))),_rf);
}
T6 r139is_static(T139* C){
T6 R=0;
T0* _rf=NULL;
T0* _running=NULL;
_running=((T24*)(X51run_class((C)->_run_feature/*8*/)))->_running/*12*/;
/*[IF*/
if(((_running)!=((void*)(NULL)))&&((r328count(((T328*)_running)))==(1))){
_rf=r24dynamic((T24*)(r328first(((T328*)_running))),(C)->_run_feature/*8*/);
/*[IF*/
if(X51is_static(_rf)){
R=1;
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_PREFIX_FREEOP.is_manifest_string*/
T0* r139start_position(T139* C){
T0* R=NULL;
R=((T142*)((C)->_feature_name/*12*/))->_start_position/*8*/;
return R;
}
/*No:CALL_PREFIX_FREEOP.c_simple*/
T0* r139add_comment(T139* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T230*n=malloc(sizeof(*n));
*n=M230;
r230make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r139to_integer(T139* C){
T2 R=0;
T0* _rf1=NULL;
_rf1=(C)->_run_feature/*8*/;
if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
case 376:
break;
default:
_rf1=NULL;
};/*[IF*/
if((_rf1)==((void*)(NULL))){
r139error(r139start_position(C),((T0*)ms13_45846));
}
else{
R=X56to_integer((((T376*)_rf1))->_value/*36*/);
}
/*FI]*/
return R;
}
T6 r139use_current(T139* C){
T6 R=0;
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(R){
}
else if(X56is_current((C)->_target/*4*/)){
R=X51use_current((C)->_run_feature/*8*/);
}
else{
R=X56use_current((C)->_target/*4*/);
}
/*FI]*/
return R;
}
T0* r139to_runnable(T139* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
T0* _t=NULL;
_t=r139runnable_expression((C)->_target/*4*/,a1);
_rf=r139run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*8*/)==((void*)(NULL))){
C->_target=_t;
C->_run_feature=_rf;
r139run_feature_match(C);
R=(T0*)C;
}
else if((_t)==((void*)((C)->_target/*4*/))){
R=(T0*)C;
}
else{
{T139*n=malloc(sizeof(*n));
*n=M139;
r139with(n,_t,(C)->_feature_name/*12*/,_rf);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
void r139compile_to_c_old(T139* C){
X56compile_to_c_old((C)->_target/*4*/);
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*No:CALL_PREFIX_FREEOP.is_pre_computable*/
void r139collect_c_tmp(T139* C){
/*[IF*/
if(((C)->_run_feature/*8*/)!=((void*)(NULL))){
X51collect_c_tmp((C)->_run_feature/*8*/);
}
/*FI]*/
X56collect_c_tmp((C)->_target/*4*/);
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*No:CALL_PREFIX_FREEOP.fz_iinaiv*/
T0* r139result_type(T139* C){
T0* R=NULL;
R=X51result_type((C)->_run_feature/*8*/);
/*[IF*/
if(X54is_like_current(R)){
R=/*X51current_type*/((T0*)((T324*)((C)->_run_feature/*8*/))->_current_type/*4*/);
}
/*FI]*/
return R;
}
/*No:CALL_PREFIX_FREEOP.run_feature*/
/*No:CALL_PREFIX_FREEOP.fz_07*/
/*No:CALL_PREFIX_FREEOP.arg_count*/
void r139with(T139* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_run_feature=a3;
r139run_feature_match(C);
}
/*No:CALL_PREFIX_FREEOP.is_result*/
/*No:CALL_PREFIX_FREEOP.fatal_error*/
void r139mapping_c_target(T139* C,T0* a1){
T0* _actual_type=NULL;
T6 _flag=0;
_flag=r25call_invariant_start(a1);
_actual_type=X54run_type(r139result_type(C));
/*[IF*/
if(X54is_reference(_actual_type)){
/*[IF*/
if(X54is_reference(a1)){
X54mapping_cast(a1);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
X54to_expanded(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(X54is_reference(a1)){
X54to_reference(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IF*/
if(X54need_c_struct(a1)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\46';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(_flag){
/*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T45* C1=(T45*)(oBC25out_c);
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
void r139run_feature_match(T139* C){
r139run_feature_has_result(C);
/*[IF*/
if((X51arg_count((C)->_run_feature/*8*/))>(0)){
r21add_position(((T142*)((C)->_feature_name/*12*/))->_start_position/*8*/);
r21add_position(X51start_position((C)->_run_feature/*8*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms141_50512);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}
/*No:CALL_PREFIX_FREEOP.arguments*/
T0* r139runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X56to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(X56start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms118_16515);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
T6 r139can_be_dropped(T139* C){
T6 R=0;
/*[IF*/
if(X56can_be_dropped((C)->_target/*4*/)){
R=X51can_be_dropped((C)->_run_feature/*8*/);
}
/*FI]*/
return R;
}
void r139c_declare_for_old(T139* C){
X56c_declare_for_old((C)->_target/*4*/);
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*No:CALL_PREFIX_FREEOP.dca_inline_argument*/
/*No:CALL_PREFIX_FREEOP.compile_to_c*/
/*No:CALL_PREFIX_FREEOP.isa_dca_inline_argument*/
void r139run_feature_has_result(T139* C){
/*[IF*/
if((X51result_type((C)->_run_feature/*8*/))==((void*)(NULL))){
r21add_position(X51start_position((C)->_run_feature/*8*/));
r21add_position(((T142*)((C)->_feature_name/*12*/))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms117_53650);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}
T0* r139run_feature_for(T139* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X54run_class(X56result_type(a1));
R=r24get_rf(((T24*)_rc),a1,(C)->_feature_name/*12*/,a2);
return R;
}
/*No:CALL_PREFIX_FREEOP.target*/
void r139error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r139make(T139* C,T0* a1,T0* a2){
C->_target=a1;
C->_feature_name=a2;
}
/*No:CALL_PREFIX_FREEOP.is_current*/
void r139mapping_c_arg(T139* C,T0* a1){
T0* _actual_type=NULL;
_actual_type=X54run_type(r139result_type(C));
/*[IF*/
if(X54is_reference(_actual_type)){
/*[IF*/
if(X54is_reference(a1)){
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
}
else{
X54to_expanded(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(X54is_reference(a1)){
X54to_reference(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IF*/
if(X54need_c_struct(a1)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\46';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T139* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
/*No:CALL_PREFIX_FREEOP.is_void*/
void r139afd_check(T139* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X54run_class(X56result_type((C)->_target/*4*/));
_running=(((T24*)_rc))->_running/*12*/;
/*[IF*/
if((_running)==((void*)(NULL))){
r21add_position(X56start_position((C)->_target/*4*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms118_181815);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)_rc))->_current_type/*0*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21print_as_warning((T21*)(oBC12eh));
r24set_at_run_time(((T24*)_rc));
}
else if((r328count(((T328*)_running)))>(1)){
r331update((C)->_target/*4*/,(C)->_run_feature/*8*/);
}
/*FI]*/
X56afd_check((C)->_target/*4*/);
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*No:E_STRIP.static_value*/
/*No:E_STRIP.is_static*/
/*No:E_STRIP.is_manifest_string*/
T2 r147array_count(T147* C,T0* a1){
T2 R=0;
/*[IF*/
if((a1)!=((void*)(NULL))){
R=r361count(((T361*)a1));
}
/*FI]*/
/*[IF*/
if(((C)->_list/*8*/)!=((void*)(NULL))){
R=(R)-(r85count((T85*)((C)->_list/*8*/)));
}
/*FI]*/
return R;
}
/*No:E_STRIP.start_position*/
/*No:E_STRIP.c_simple*/
T0* r147add_comment(T147* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T230*n=malloc(sizeof(*n));
*n=M230;
r230make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r147to_integer(T147* C){
T2 R=0;
r147error((C)->_start_position/*4*/,((T0*)ms13_45846));
return R;
}
/*No:E_STRIP.use_current*/
T0* r147to_runnable(T147* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((C)->_current_type/*12*/)==((void*)(NULL))){
C->_current_type=a1;
/*[IRF3.3set_strip_used*/((((T24*)((T24*)(X54run_class((C)->_current_type/*12*/)))))->_strip_used)=(1);
/*]*/
R=(T0*)C;
}
else{
{T147*n=malloc(sizeof(*n));
*n=M147;
r147make(n,(C)->_start_position/*4*/,(C)->_list/*8*/);
R=(T0*)n;
}
R=r147to_runnable(((T147*)R),a1);
}
/*FI]*/
return R;
}
/*No:E_STRIP.compile_to_c_old*/
/*No:E_STRIP.is_pre_computable*/
/*No:E_STRIP.collect_c_tmp*/
/*No:E_STRIP.fz_iinaiv*/
int fBC147result_type=0;
T0*oBC147result_type=NULL;
T0* r147result_type(void){
if(fBC147result_type==0){
fBC147result_type=1;
{T260*n=malloc(sizeof(*n));
*n=M260;
r260make(n,NULL,r147type_any());
oBC147result_type=(T0*)n;
}
oBC147result_type=r260to_runnable(((T260*)oBC147result_type),r147type_any());
r24set_at_run_time((T24*)(r260run_class(((T260*)oBC147result_type))));
r260load_basic_features(((T260*)oBC147result_type));
r341register(oBC147result_type);
}
return oBC147result_type;}
/*No:E_STRIP.list*/
/*No:E_STRIP.is_result*/
/*No:E_STRIP.mapping_c_target*/
/*No:E_STRIP.can_be_dropped*/
/*No:E_STRIP.c_declare_for_old*/
T0* r147type_any(void){
if(fBC12type_any==0){
fBC12type_any=1;
{T259*n=malloc(sizeof(*n));
*n=M259;
r259make(n,NULL);
oBC12type_any=(T0*)n;
}
}
return oBC12type_any;}
/*No:E_STRIP.dca_inline_argument*/
void r147compile_to_c(T147* C){
T0* _ct=NULL;
T2 _i=0;
T0* _rf2=NULL;
T0* _wa=NULL;
r341c_call(r147result_type());
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
_ct=(C)->_current_type/*12*/;
_wa=r24writable_attributes((T24*)(X54run_class(_ct)));
/*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),r147array_count(C,_wa));
/*]*/
/*[IF*/
if((_wa)!=((void*)(NULL))){
_i=(((T361*)_wa))->_upper/*12*/;
while (!((_i)==(0))) {
_rf2=r361item(((T361*)_wa),_i);
/*[IF*/
if((((C)->_list/*8*/)==((void*)(NULL)))||(!(r85has((T85*)((C)->_list/*8*/),(((T356*)_rf2))->_name/*16*/)))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\54';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
X54to_reference((((T356*)_rf2))->_result_type/*28*/);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
r25print_current((T25*)(oBC12cpp));
/*[IF*/
if(X54is_expanded((C)->_current_type/*12*/)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\56';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms147_220));
/*]*/
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\137';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X83to_string((((T356*)_rf2))->_name/*16*/));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*No:E_STRIP.isa_dca_inline_argument*/
/*No:E_STRIP.current_type*/
void r147error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r147make(T147* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_list=a2;
}
/*No:E_STRIP.is_current*/
/*No:E_STRIP.mapping_c_arg*/
/*No:E_STRIP.is_void*/
/*No:E_STRIP.afd_check*/
/*No:ONCE_RESULT.static_value*/
/*No:ONCE_RESULT.is_static*/
/*No:ONCE_RESULT.is_manifest_string*/
/*No:ONCE_RESULT.start_position*/
/*No:ONCE_RESULT.c_simple*/
T0* r155add_comment(T155* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T230*n=malloc(sizeof(*n));
*n=M230;
r230make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r155to_integer(T155* C){
T2 R=0;
r155error((C)->_start_position/*4*/,((T0*)ms13_45846));
return R;
}
/*No:ONCE_RESULT.use_current*/
T0* r155to_runnable(T155* C,T0* a1){
T0* R=NULL;
T0* _rt2=NULL;
T0* _rt1=NULL;
T0* _rf6=NULL;
R=(T0*)C;
_rf6=r22top_rf((T22*)(oBC12small_eiffel));
if(NULL!=(_rf6))switch(((T0*)_rf6)->id) {
case 50:
break;
default:
_rf6=NULL;
};/*[IF*/
if(((C)->_run_feature_6/*8*/)==((void*)(NULL))){
C->_run_feature_6=_rf6;
}
else{
_rt1=X54run_type((((T50*)_rf6))->_result_type/*40*/);
_rt2=X54run_type(((T50*)((C)->_run_feature_6/*8*/))->_result_type/*40*/);
/*[IF*/
if((X54run_time_mark(_rt1))!=((void*)(X54run_time_mark(_rt2)))){
r21add_position(X54start_position(_rt1));
r21add_position(X54start_position(_rt2));
r50fe_vffd7((T50*)((C)->_run_feature_6/*8*/));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:ONCE_RESULT.compile_to_c_old*/
/*No:ONCE_RESULT.is_pre_computable*/
/*No:ONCE_RESULT.collect_c_tmp*/
/*No:ONCE_RESULT.fz_iinaiv*/
/*No:ONCE_RESULT.result_type*/
/*No:ONCE_RESULT.is_result*/
void r155mapping_c_target(T155* C,T0* a1){
T0* _rt=NULL;
T6 _flag=0;
_flag=r25call_invariant_start(a1);
_rt=X54run_type(/*(IRF4.6result_type*/(((T50*)((C)->_run_feature_6/*8*/)))->_result_type/*40*//*)*/);
/*[IF*/
if(X54is_reference(_rt)){
/*[IF*/
if(X54is_reference(a1)){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_510));
/*]*/
/*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X54id(a1));
/*]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_172));
/*]*/
/*[IRF3.5compile_to_c*/r50cpp_once_result(((T50*)((C)->_run_feature_6/*8*/)));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
X54to_expanded(_rt);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5compile_to_c*/r50cpp_once_result(((T50*)((C)->_run_feature_6/*8*/)));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(X54is_reference(a1)){
X54to_reference(_rt);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5compile_to_c*/r50cpp_once_result(((T50*)((C)->_run_feature_6/*8*/)));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IF*/
if(X54need_c_struct(_rt)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\46';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
/*[IRF3.5compile_to_c*/r50cpp_once_result(((T50*)((C)->_run_feature_6/*8*/)));
/*]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(_flag){
/*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T45* C1=(T45*)(oBC25out_c);
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
/*No:ONCE_RESULT.can_be_dropped*/
/*No:ONCE_RESULT.c_declare_for_old*/
/*No:ONCE_RESULT.dca_inline_argument*/
/*No:ONCE_RESULT.fz_b7*/
/*No:ONCE_RESULT.compile_to_c*/
/*No:ONCE_RESULT.fz_b8*/
/*No:ONCE_RESULT.isa_dca_inline_argument*/
void r155error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
/*No:ONCE_RESULT.make*/
/*No:ONCE_RESULT.is_current*/
void r155mapping_c_arg(T155* C,T0* a1){
T0* _rt=NULL;
_rt=X54run_type(/*(IRF4.6result_type*/(((T50*)((C)->_run_feature_6/*8*/)))->_result_type/*40*//*)*/);
/*[IF*/
if(X54is_reference(_rt)){
/*[IF*/
if(X54is_reference(a1)){
/*[IRF3.5compile_to_c*/r50cpp_once_result(((T50*)((C)->_run_feature_6/*8*/)));
/*]*/
}
else{
X54to_expanded(_rt);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5compile_to_c*/r50cpp_once_result(((T50*)((C)->_run_feature_6/*8*/)));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(X54is_reference(a1)){
X54to_reference(_rt);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5compile_to_c*/r50cpp_once_result(((T50*)((C)->_run_feature_6/*8*/)));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IF*/
if(X54need_c_struct(_rt)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\46';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
/*[IRF3.5compile_to_c*/r50cpp_once_result(((T50*)((C)->_run_feature_6/*8*/)));
/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*No:ONCE_RESULT.is_void*/
/*No:ONCE_RESULT.afd_check*/
/*No:ONCE_RESULT.run_feature_6*/
/*No:INDEX_CLAUSE.tag*/
/*No:INDEX_CLAUSE.without_tag*/
void r320add_last(T320* C,T0* a1){
/*[IF*/
if(((C)->_list/*4*/)==((void*)(NULL))){
{T151*n=malloc(sizeof(*n));
*n=M151;
r151with_capacity(n,4);
C->_list=(T0*)n;
}
}
/*FI]*/
X151add_last((C)->_list/*4*/,a1);
}
/*No:INDEX_CLAUSE.with_tag*/
/*No:INDEX_CLAUSE.list*/
/*No:FORMAL_GENERIC_ARG.start_position*/
void r278make(T278* C,T0* a1,T0* a2){
C->_name=a1;
C->_constraint=a2;
}
/*No:FORMAL_GENERIC_ARG.constraint*/
/*No:FORMAL_GENERIC_ARG.name*/